package com.hnevc.mytrafficdemo.activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;

import com.hnevc.mytrafficdemo.R;
import com.hnevc.mytrafficdemo.adapter.SlidingMenuAdapter;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    //声明控件（箭头）
    ImageView slidingMenuIconIv;
    //声明弹出菜单 SlidingMenu
    SlidingMenu menu;
    //声明 ListView 控件
    ListView list;
    //声明数据集
    List<String> contents;
    List<Integer> icons;
    //声明 SlidingMenuAdapter 适配器
    SlidingMenuAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化侧滑菜单
        initSlidingMenu();
    }

    /**
     * 该方法用于初始化一个 SlidingMenu 弹出菜单
     */
    public void initSlidingMenu() {
        //创建弹出菜单并设置菜单样式
        menu = new SlidingMenu(MainActivity.this);
        //为菜单设置各种样式
        menu.setMode(SlidingMenu.LEFT);
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//全屏
        menu.setBehindWidth(getResources().getDisplayMetrics().widthPixels / 3);
        //将当前的弹出菜单绑定到指室的Activity中，并作为内容值
        menu.attachToActivity(MainActivity.this, SlidingMenu.SLIDING_CONTENT);
        //为弹出菜单指定要显示的具体布局文件
        menu.setMenu(R.layout.slidingmenu);

        //调用initSlidingMenu
        initMenuListView();
        //查找用于出现弹出菜单的那个 绿色箭头图标图片
        slidingMenuIconIv = (ImageView) findViewById(R.id.header_back_iv);
        //为箭头设置事件监听
        slidingMenuIconIv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //通过toggle()方法实现:单击绿色箭头按钮,切换 显示和隐藏弹出菜单
                menu.toggle();
            }
        });
    }


    /**
     * 该方法用于初始化 SlidingMenu 弹出菜单中间部分的 ListView
     */
    public void initMenuListView() {
        //通过 menu.getMenu()获取了SlidingMenu 对应的View类型的对象
        View menuView = menu.getMenu();
        //在SlidingMenu表示的View中查找 ListView 控件
        list = (ListView) menuView.findViewById(R.id.slidingmenu_lv);
        //向集合中添加数据
        icons = new ArrayList<>();
        icons.add(R.drawable.a);
        icons.add(R.drawable.b);
        icons.add(R.drawable.c);
        icons.add(R.drawable.c);
        icons.add(R.drawable.e);
        icons.add(R.drawable.f);
        icons.add(R.drawable.f);
        icons.add(R.drawable.e);
        contents = new ArrayList<>();
        contents.add("账户管理");
        contents.add("我的座驾");
        contents.add("我的路况");
        contents.add("公交查询");
        contents.add("车位查询");
        contents.add("道路环境");
        contents.add("个人中心");
        contents.add("违章查询");

        //创建SlidingMenu 适配器 ，继承BaseAdapter(注:该Adater是为弹出菜单的中间部分的ListView创建适配器)
        adapter = new SlidingMenuAdapter( MainActivity.this, contents, icons );
        //为ListView设置适配器
        list.setAdapter(adapter);

        //为ListView添加事件监听(Item的事件监听)
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent,
                                    View view, int position, long id) {

                //定义一个Class<?> 类对象
                Class<?>  cls = null;
                switch ( position ){
                    case 0:
                        cls = AcountManageActivity.class;
                        Log.i("info", "onItemClick: ");
                        break;
                    case 1: //我的座驾  MyCarActivity
                        cls = MyCarActivity.class;
                        Log.i("info","cls="+cls);
                        break;
                    case 2://我的路况  MyRoadActivity
                        cls = MyRoadActivity.class;
                        break;
                    case 3://公交查询  QueryBusActivity
                        cls = QueryBusActivity.class;
                        break;
                    case 4://车位查询   QueryParkActivity
                        cls = QueryParkActivity.class;
                        break;
                    case 5://道路环境
                        cls = RoadEnvironmentActivity.class;
                        break;
                    case 6://个人中心
                        cls = PersonCenterActivity.class;
                        break;
                    case 7://违章查询
                        cls = AntiTrafficActivity.class;
                        break;
                }
                Intent in = new Intent();
                in.setClass(MainActivity.this, cls );
                startActivity(in);

            }
        });
    }

}
